нет не юнит а эфект
токо заметил и спелы теперь больше нормы наносят урона но дело не в константах
я хз что за фигня
а все разобрался , все дела были из за тригерного спела он почемуто на все спелы влиял )
можно закрыть тему
Ну я не люблю дамми снаряды для направленных способностей, с ними много проблем... в общем юзаю кислотную бомбу и молот бурь, отлавливают попадание по урону в 0 ед. баффу.
Громовая поступь говённая способность для дамми скиллов, деформирует рельеф (это никак не убрать) лучше использовать молот бурь на каждого или ракетный удар, эти способности более гибкие в настройке и не дают не удаляемых эффектов.
Урон лучше всего наносить триггерно от имени кастера независимо что это может сделать и даммик, так сразу мы решим несколько багов - нейтралы будут разбегаться а не агрится на кастера (даммик то неуязвим), способности вроде Blade mail из доты (возвращает урон обратно) не будут работать корректно, а так же многое другое что проверяет убийцу и нанесшего урон.
Значит что нам нужно, летающий дамми юнит (делаем его из светлячка ночных эльфов) - модель Dummy.mdx (требуется скачать и импортировать в карту), обзор в 0, еду, стоимость в 0, хп\мп 1005000 (неважно), способности (москиты и усе, ну можно Неуязвимый нейтральный или как фрог маркер, чисто чтобы потом отьсеивать даммиков, магазины, и тому подобное проверяя на наличие этой способности)
Высота полета 0, тип летающий, угол крена в 0 град. убираем все спецэффекты при смерти и усе.
Триггерно двигай даммика прикрепив к нему спецэффект снаряда, когда до цели не останется расстояния убивай дамми и удаляй спецэффект, выбирай юнитов в области вокруг цели, потом исключи цель из группы и нанеси ей урон, после половинный (или какой там у тебя) урон всем остальным, потом создай даммика, вручи ему ракетный удар и прикажи выстрелить им по области под целью, все очень просто!
Нашёл систему, где звук передаётся в таймер, который истекает через 0 секунд. В результате один и тот же звук может проигрываться несколько раз без всяких проблем. В инетике пишут мол это такой баг движка.
Mrachny, DesiMorti, нифига не верно
событие юнит умирает
откуда взяться приказу?
или вы думаете что в компе сидят маленькие человечки которые читают ваши мысли и следят чтобы всё работало так как вы того хотите?
должен вас огорчить но их не существует
и приказа не существует(ибо его никто не создал) DesiMorti, есть куча систем отлова урона
даже есть статья на гуи на эту тему
хоть иногда статьи читайте
а вообще всё делается намного проще
просто помечаем построенный здания (например при постройке даём им дамми спел)
а при смерти юнита проверяем помечен он или нет(например есть ли у него дамми спел)
и если помечен то создаём юнитов
декорация то сцществует? обычно что бы такие переменные оставались существовать, нужно иметь гуи триггер где хоть как то будет упоминаться юнит/декорация, хоть без ивентов или действий
Но это плохой паттерн - их нельзя перевести автопереводчиком, их не понимают поисковики (никто же не будет заставлять вас писать скрытый alt текст для скрин ридеров)
В будущем планируем красивые плитки, куда можно будет поместить картинку+ссылку+заголовок+текст
интервал пополнения не обязательно ставить, работает без этого. и вообще не от этого работает. Ошибка моя. там с условием проблема была. Больше не встают на перезарядку
эх. ты не поймешь. руна нужна, если у тебя полный инвентарь. А ты можешь ее подобрать и она исчезнет, даже если у тебя полный рюкзак. Это отслеживается, проверяешь какую руну подобрал и можно делать всякие фишки. это я пример хотел сделать, что можно руну в магазин сразу пихать. С руной можно делать скрещивание, складывание зарядов и прочее.
можно отследить двойной клик, но походу поспешил с выводами. Проблема в том, что ты дважды покупаешь предмет, дважды тратишь золота. Короче может не хватит на второй предмет. Нельзя также и исключать, что в магазине итем закончится и будет пополнятся долго. То есть второй итем опять не купишь. Тебе тогда придется придумывать (ценник убрать и интервал обнулить). тебе скидывать бесполезно. Тут должна быть своя система покупки. Проверяешь сколько ресурсов у игрока и прочее.
вот системы. мне они приглянулись, их можно доработать и будет норм.
файл - параметры - автоматически создавать неизвестные переменные привставке триггеров.
размерность массивов в любом случае самому нужно будет переназначать.
Maxsavin, я каждой карте из кампаний даю свой кэш, чтобы не перепуталось ничего.
Не знаю, что получилось бы, сделай я один кэш-файл на всю кампу и грузи карты потом не по порядку. Проверять не буду. Кампания - это пак карт.
Razor_dex, сконвертируй карту, потом открой в стандартном 1.26 редакторе, удали комментарий Рок Лии\Otome Renge
Для гуи-гигантов это типичная болячка, просто битый комментарий который содержит в себе информацию о нескольких действиях, считай как обычный триггер только отображается как комментарий
Возникает такое скорее всего при копировании
P.S. странно что редакторы до 1.31 не обращают внимания на такой баг
События триггера никак нельзя удалить, можно только удалить триггер (с кондишенами и акшенами).
А кстати вот - xgm.guru/p/wc3/venomanser
Будет несомненно полезно, как правильно удалять триггеры.
Да и вовсе полезно для общего развития.
способность можно удалить спокойно, так и добавить.
еще ее спрятать можно, но это гемор (тк нужно импортировать файл, прописывать координаты), таким образом на всю игру спрячешь xgm.guru/p/100/200277
видимо это одна из коммандных абил, поэтому и нельзя заблочить. все что ты пытаешься сделать - заблочить, а не удалить
Можно, создаёте все 24 события лива для одного тригоера. А в действии триггера узнаете ливнувшего игрока с помощью функций: GetTriggeringPlayer(), GetLeavingPlayer().
Второй комп сломан поэтому проверить не могу, почему у меня подозрение, что оно должно работать.... Хотя могу и ошибаться, нормально делал карты года 2 назад.
а) Создай 2 переменные-массива по типу "боевая единица" (массив - чтобы для каждого игрока, мы ведь за мультиплеер трем, прально?), назови типа MyChampion и MyChampionDummy.
б) подготовь невидимого героя-пустышку с нужной тебе иконкой, убери ману, если у чемпиона ее нет. Убери ему радиус обзора, убери галочки типа "отмечать на мини-карте" - остальные - опционально.
В дальнейшем мы будем синхронизировать пустышку и реального чемпиона, создавая видимость одной боевой единицы.
Итак, наш первый триггер:
в) Отследи первое появление чемпиона, когда это случится - создай для игрока героя-пустышку. Соответственно сделай MyChampion [number of (Owner of trained unit)]= last trained unit, следующей строчкой создай того самого героя-пустышку для (owner of trained unit) и сделай MyChampionDummy = last created unit. Теперь мы прочно связали этих чуваков. Этот же триггер запускает остальные.
г) Отслеживание здоровья. Сделай изначально выключенный цикличный триггер, там, каждые 0.3 секунды. Триггер запускается пунктом в). Каждые 0.3 секунды меняй здоровье героя (чья икона висит, надо чтобы она соответствовала, прально?) в % на здоровье самого чемпиона.
д) пропищи событие, мол, если выбирает игрок своего героя (кликая на иконку) выбирается чемпион
е) убивай героя вместе с чемпионом
ж) отключай триггеры с проверкой и выбором, пока чемпион мертв
з) не забывай обновлять переменную чемпиона с каждым новым чемпионом.
Понадобится переменная содержащая количество играющих.
Делай по принципу апгрейда крепости в замок. Только у базового здания несколько апгрейдов, на каждую расу. И триггером увеличить переменной +1 по окончанию апгрейда.
Когда у переменной значение становится равное количеству играющих, создаешь работников.
Я решил проблему, используя обработчики событий BlzTriggerRegisterPlayerKeyEvent и EVENT_PLAYER_MOUSE_DOWN
При нажатии правой кнопки мыши проверяется наличие живого героя и селекция юнитов, если в ней нет юнитов которыми игрок может управлять (или вообще никто не выбран) то юнит моментально отправляется приказом "move" в точку, на которую кликнул игрок и сразу выбирается.
При нажатии клавиши герой просто выбирается.
примергде-то надо еще таймером будет. просто по идее система работает так: происходит событие изменения ресурса (запоминаем сколько), следом происходит основное событие (покупка-продажа). значит, здесь ловим итем, потом вычисления с налогами. Но такой порядок бывает не всегда. Вот допустим продажа: сначала продаем (итем забирают, событие продажи), потом дают деньги (событие изменения ресурса). как видишь, здесь надо тогда таймером через 0.00 сек или сколько то сек проверять измену реса
хотел реализовать похожую систему (проводить торговлю не через чат, а через кнопочки). только на мем хаке. изменить можно только в мем хаке. если вы изменяете цену типу предмета, тогда она у всех итемов данного типа меняется. сделал так: копию на каждого игрока, у одного будет одна цена, у другого другая. короче каждый игрок товар может предложить по разной цене. как это будет работать пока не знаю (я не все продумал, и поэтому не доделал).
можно стоимость убрать и триггерами начислять/убавлять
используй подходящие константы к конкретным событиям триггера.
продажа итема
событие - юнит закладывает предмет в лавку
переменные:
GetSellingUnit() =продающий торговец (типа всякие предметы закладывает в магазин и получает деньги)
GetBuyingUnit()=GetTriggerUnit() = покупающий торговец (это обычно магазин)
покупка итема
событие - продает предмет (из лавки)
GetSellingUnit()=GetTriggerUnit() =продающий торговец (в данном случае магазин продает нам)
GetBuyingUnit() = покупающий торговец (это наш герой отдает денюшку, а сам получает артефает или лошадь)
А предмет который продают или покупают
GetSoldItem()
Вджасс это дополнение к обычному джассу, у себя ты можешь видеть строки объявления библиотеки, продвинутые комментарии и статические константные переменные
Возможно у тебя реально проблема в последней, например он сканирует список всех карт, находит какое-то непотребство и падает в ошибку, надо проследить и почистить этот путь
Я не понимаю как работать без него, особенно без ро
В идее выбираешь режим редактор, а не игры, и работаешь в редакторе как обычно
Такой ауры нету, есть аура на бонус атаки (наверн, это не то, что вам нужно). можешь посмотреть список
Можно сделать триггерно, делаешь ауру пустышку. Потом систему урона, в этой системе проверяешь наличие баффа ауры. Наносишь доп урон. Ну, и конечно, надо знать какой дамаг от магии, или физическ. Это тоже надо подумать. Вроде, столько систем на определения придумано
можно еще каждые 2-3 сек выделять всех вокруг кастера в группу и что-то делать с этими юнитами, добавляя им бонусы: реген, защита и пр
Если заклинания триггерные, то можно проверять висит ли на кастере бафф, и увеличивать дамаг. Многие стандартные способности можно сделать триггерно
GearOfRage, в данном случае надо тестировать кампанию, а не саму карту. Открываешь через игру доп кампанию и играешь нужную миссию (для этого надо сделать все миссии временно доступными)
Виджитайзер норм, если правильно все делать. Ultimate Slk Opt быстрый, но надо держать ухо в остро, то будет карта с иероглифами. AntiMage:
quq_CCCP, виджитайзер слишком медленный, Ultimate opt непонятный, +они оба ведь защишают карту, мне этого ненужно тоесть я хочу чтоб мои обьектные данные о войсках и.т.д обратно восстановились когда угодно, чтоб world editor мог открывать
А нах юному IceFrog'у понадобилась слк оптимизация? Тем более виджитайзер ничего не защищает, но чтобы работать с данными карты в редакторе достаточно распаковать их из карты в папку с варом и все, странно что у вас нет других проблем о которых бы следовало спросить на форуме.
логика такова
цикл от 1 до всех предметов в карте призван Установить для Каждого Item_Init[Cnt_Item_Init]
Значение взятое из SetItemUserData
для удобства занес эти Значения в Переменную типа Массив чтобы Оперировать с ними там где мне это нужно
и когда в инвентаре окажется Индекс этого предмета я буду знать что этот предмет мне нужен для Удаления
для этого есть функция
function F_H_Section_ReturnItem takes unit u, integer id returns nothing
set Cnt_Inv = 0
loop
exitwhen Cnt_Inv > Min_Inv
set ItemsInSlots[Cnt_Inv] = UnitItemInSlot(u, Cnt_Inv)
if LoadBoolean(H, StringHash("H"), StringHash("RemoveItems")) then
call SaveBoolean(H, StringHash("H"), StringHash("RemoveItems"), false)
call RemoveItem(ItemsInSlots[Cnt_Inv])
else
if GetItemTypeId(ItemsInSlots[Cnt_Inv]) == id then
call SaveBoolean(H, StringHash("H"), StringHash("RemoveItem"), true)
call RemoveItem(ItemsInSlots[Cnt_Inv])
endif
endif
set Cnt_Inv = Cnt_Inv + 1
endloop
set Cnt_Inv = 0
loop
exitwhen Cnt_Inv > Min_Inv
set ItemsInSlots[Cnt_Inv] = null
set Cnt_Inv = Cnt_Inv + 1
endloop
endfunction
достаточно одно SaveBoolean и готово
а дальше Создание предмета ПО Индексу расположенный в Item_Init
call SaveBoolean(H, StringHash("H"), StringHash("RemoveItems"), false)
призван удалить Все предметы из инвентаря Без проверки GetItemTypeId
либо использовать вариант который написал nazarpunk:
тут уже мне решать
function F_Pick_Item takes nothing returns nothing
set Cnt_Item_Init = 1
loop
exitwhen Cnt_Item_Init > Item_Init_Number_End
call SaveBoolean(H, StringHash("H"), StringHash("ItemUserDataSave"), true)
call SaveItemHandle(H, StringHash("H"), StringHash("ItemUserData"), GetManipulatedItem())
if GetItemTypeId(GetManipulatedItem()) == Item_Init[Cnt_Item_Init] then
set ItemUserDataMas[ItemUserDataAmount] = Cnt_Item_Init
endif
set Cnt_Item_Init = Cnt_Item_Init + 1
endloop
call F_H_Section_ItemUserData()
Ну если взять стандартное мили 1х1, где обычно катки длятся 10-15 минут, то думаю афк на 2 минуты уничтожит игрока на первых 10 минутах. Если катка затянулась на полчаса, то афк 5-10 минут может уничтожить игрока. Если игра затянулась на 10 часов, то думаю, часок можно и поафкашить.
Вот тут афк на 6.5 часов было норм для игроков
Так что все зависит от игры, геймплея, условий, где это критично а где нет. Может быть у тебя будет не конкретное число минут для определения афк и передача войск союзнику, а прогрессирующая шкала, чем дальше катка тем дольше можно быть афк, ибо самая жара действий обычно происходит на старте-середине игры.
И я не уверен, что стоит кикать игрока, можно просто передать контроль союзникам, пока он не вернется. Но это уже твоя авторская идея и система, как посчитаешь правильным для своей карты.
И да, АФК - от англ. AFK = Away From Keyboard, что в переводе отошел от клавиатуры.
Создай изображение размером 256x256. Конвертируй его в формат TGA. Переименуйте в war3mapPreview.tga и загрузите в карту, в карте уберите путь war3mapimported
WW перестаёт становиться DIS, когда у героя более одной абилки WW
типа что бы ты мог активировать другой, пока работает первый... но разблокировка идёт на все сразу (и на сам себя тоже)
Extremator предлагает делать переключение через выделения таверн через триггеры. Выделение с одной снял, выделение на другую переключил.
Хоттаб, предлагаю другой вариант - ОДНУ таверну со всеми героями. пример с итемами, там переключение система 14 верс
есть пример, тоже самое можно сделать например для героев. По идее можно всех-всех героев заранее забить в таверну. Так можно сделать ОДНУ таверну со всеми героями, но с переключением списков. Так можно сделать, это надо в РО забить всех героев в таверну, если не получается пробуйте через клавишу Shift. Но будет отображаться только первые 10-12, остальные не вместятся на панеле. Поэтому надо разбить героев на списки.
Можно спрятать всех героев, кроме определенных героев, находящей на первой странице. А когда нажимаешь, то прячешь для игрока одних героев на 1 странице, и показываешь других героев на след странице.
как прятать героев вот ссылкакогда задаешь лимит обучения данного типа ноль, то иконка этого героя исчезает. прячешь одних. разблокируешь других.
» WarCraft 3 / Заклинание дух воды
» WarCraft 3 / Триггер - добавить событие к триггеру
» WarCraft 3 / Помощь с LUA-кодом
» Администрация XGM / подсветка кода
» Администрация XGM / ссылки на профиль
» WarCraft 3 / Общие здания и ресурсы.
» WarCraft 3 / Проблема с переносом триггеров
» WarCraft 3 / Удалить событие
» WarCraft 3 / выбор расы на игроков
» WarCraft 3 / Отдельный файл
» Game Dev / Lumalabs.ai - текст в 3D
» WarCraft 3 / Управление неподконтрольным юнитом
» WarCraft 3 / Продажа предметов
» WarCraft 3 / Вылезает ошибка(только эта)
» WarCraft 3 / Прогрузка карты в редакторе
» WarCraft 3 / Аура дамага
» WarCraft 3 / Проблема с созданием предмета
» WarCraft 3 / Герой: Hogger
» WarCraft 3 / Зрители
» WarCraft 3 / Проблема с тестом карты
» WarCraft 3 / Изображение
» WarCraft 3 / Редактор на заказ
» WarCraft 3 / ИИ героев